import {FetchUtil} from '@xtail/req'

/**
 * 获取 Iconify 指定图标集指定图标的 CSS 代码字符串
 * Iconify 文档：https://iconify.design/docs/api/css.html
 *
 * @param {string} prefix 图标集前缀，用于指定要获取 CSS 的图标所在的图标集
 * @param {string[]} icons 图标名称列表，用于指定要获取 CSS 的图标名称
 * @returns {Promise<string>} Iconify 指定图标集指定图标的 CSS 代码字符串
 */
export const getIconsCSS = async (prefix: string, icons: string[]): Promise<string> => {
  let url = `https://api.iconify.design/${prefix}.css?icons=${icons.join(',')}`
  return await FetchUtil.req({url, jsonParse: false})
}

export type GetIconifyIconsCSSType = typeof getIconsCSS

/**
 * 获取 Iconify 指定图标集指定图标的 CSS 代码字符串
 * Iconify 文档：https://iconify.design/docs/api/css.html
 *
 * @param {string} prefix 图标集前缀，用于指定要获取 CSS 的图标所在的图标集
 * @param {string} icon 图标名称，用于指定要获取 CSS 的图标名称
 * @returns {Promise<string>} Iconify 指定图标集指定图标的 CSS 代码字符串
 */
export const getIconCSS = async (prefix: string, icon: string): Promise<string> => {
  return await getIconsCSS(prefix, [icon])
}

export type GetIconifyIconCSSType = typeof getIconCSS
